package sicnu.cs.aps.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import sicnu.cs.aps.domain.entity.Role;

import java.util.List;
import java.util.Optional;
import java.util.Set;


/**
 * @author CaiKe
 */
@Mapper
public interface RoleMapper extends BaseMapper<Role> {

    /**
     * 查找角色
     *
     * @param userid 用户id
     * @return 角色集合
     */
    Set<Role> findRolesByUserid(@Param("userid") Long userid);

    /**
     * 查询角色
     *
     * @param role 角色标识
     * @return 角色对象
     */
    Optional<Role> findOptionalByAuthority(String role);

    /**
     * 添加用户角色关联
     *
     * @param userId 用户id
     * @param roleId 角色id
     */
    void addUserRole(Long userId, Integer roleId);

    /**
     * 批量插入角色用户关联信息
     *
     * @param userIds 用户id列表
     * @param roleId  角色id
     * @return 影响行数
     */
    Integer insertBranchUserRole(@Param("userIds") List<Long> userIds, @Param("roleId") Long roleId);
}
